package sumOfMultiples;

//class Solution {
//    public int sumOfMultiples(int n) {
//        int sum=0;
//        for (int i = 3; i <=n ; i++) {
//            if(check(i)){
//                sum+=i;
//            }
//        }
//        return sum;
//    }
//    private boolean check(int n){
//        return n%3==0||n%5==0||n%7==0;
//    }
//}
class Solution {
    public int sumOfMultiples(int n) {
        return s(n, 3) + s(n, 5) + s(n, 7) - s(n, 15) - s(n, 21) - s(n, 35) + s(n, 105);
    }
    // 容斥原理
    private int s(int n, int m) {
        return (1 + n / m) * (n / m) / 2 * m;
    }
}